import { IPSAppCodeList } from '../../app/codelist/ipsapp-code-list';
import { IPSAppDEField } from '../../app/dataentity/ipsapp-defield';
import { IPSCalendar } from './ipscalendar';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';

/**
 *
 * @export
 * @interface IPSDECalendar
 */
export interface IPSDECalendar extends IPSCalendar {
  /**
   * 分组高度
   * @type {number}
   * @default 0
   */
  groupHeight: number;

  /**
   * 分组布局
   * @description 值模式 [多数据部件分组方向] {ROW：从左往右、 COLUMN：从上往下 }
   * @type {( string | 'ROW' | 'COLUMN')}
   */
  groupLayout: string | 'ROW' | 'COLUMN';

  /**
   * 分组模式
   * @description 值模式 [多数据部件分组模式] {NONE：无分组、 AUTO：自动分组、 CODELIST：分组代码表 }
   * @type {( string | 'NONE' | 'AUTO' | 'CODELIST')}
   */
  groupMode: string | 'NONE' | 'AUTO' | 'CODELIST';

  /**
   * 分组应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getGroupPSAppDEField(): IPSAppDEField | null;

  /**
   * 分组代码表
   *
   * @type {IPSAppCodeList}
   */
  getGroupPSCodeList(): IPSAppCodeList | null;

  /**
   * 分组默认界面样式
   *
   * @type {IPSSysCss}
   */
  getGroupPSSysCss(): IPSSysCss | null;

  /**
   * 分组绘制插件
   *
   * @type {IPSSysPFPlugin}
   */
  getGroupPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 分组宽度
   * @type {number}
   * @default 0
   */
  groupWidth: number;

  /**
   * 图例位置
   * @description 值模式 [云实体表单表单项标签位置] {LEFT：左边、 TOP：上方、 RIGHT：右边、 BOTTOM：下方、 NONE：不显示 }
   * @type {( string | 'LEFT' | 'TOP' | 'RIGHT' | 'BOTTOM' | 'NONE')}
   */
  legendPos: string | 'LEFT' | 'TOP' | 'RIGHT' | 'BOTTOM' | 'NONE';

  /**
   * 启用分组
   * @type {boolean}
   */
  enableGroup: boolean;
}
